﻿package constants;

public enum Currency {
	
	ALL ("﻿Albania Lek","Lek", -1),
	AFN ("Afghanistan Afghani", "؋", -1),
	ARS ("Argentina Peso","$", -1),
	AWG ("Aruba Guilder","ƒ", -1),
	AUD ("Australia Dollar","$", -1),
	AZN ("Azerbaijan New Manat","ман", -1),
	BSD ("Bahamas Dollar","$", -1),
	BBD ("Barbados Dollar","$", -1),
	BYR ("Belarus Ruble","p.", -1),
	BZD ("Belize Dollar","BZ$", -1),
	BMD ("Bermuda Dollar","$", -1),
	BOB ("Bolivia Boliviano","$b", -1),
	BAM ("Bosnia and Herzegovina Convertible Marka","KM", -1),
	BWP ("Botswana Pula","P", -1),
	BGN ("Bulgaria Lev","лв", -1),
	BRL ("Brazil Real","R$", -1),
	BND ("Brunei Darussalam Dollar","$", -1),
	KHR ("Cambodia Riel","៛", -1),
	CAD ("Canada Dollar","$", -1),
	KYD ("Cayman Islands Dollar","$", -1),
	CLP ("Chile Peso","$", -1),
	CNY ("China Yuan Renminbi","¥", -1),
	COP ("Colombia Peso","$", -1),
	CRC ("Costa Rica Colon","₡", -1),
	HRK ("Croatia Kuna","kn", -1),
	CUP ("Cuba Peso","₱", -1),
	CZK ("Czech Republic Koruna","Kč", -1),
	DKK ("Denmark Krone","kr", -1),
	DOP ("Dominican Republic Peso","RD$", -1),
	XCD ("East Caribbean Dollar","$", -1),
	EGP ("Egypt Pound","£", -1),
	SVC ("El Salvador Colon","$", -1),
	EEK ("Estonia Kroon","kr", -1),
	EUR ("Euro Member Countries","€", 2),
	FKP ("Falkland Islands Malvinas, Pound","£", -1),
	FJD ("Fiji Dollar","$", -1),
	GHC ("Ghana Cedis","¢", -1),
	GIP ("Gibraltar Pound","£", -1),
	GTQ ("Guatemala Quetzal","Q", -1),
	GGP ("Guernsey Pound","£", -1),
	GYD ("Guyana Dollar","$", -1),
	HNL ("Honduras Lempira","L", -1),
	HKD ("Hong Kong Dollar","$", -1),
	HUF ("Hungary Forint","Ft", -1),
	ISK ("Iceland Krona","kr", -1),
	INR ("India Rupee","र", -1),
	IDR ("Indonesia Rupiah","Rp", -1),
	IRR ("Iran Rial","﷼", -1),
	IMP ("Isle of Man Pound","£", -1),
	ILS ("Israel Shekel","₪", -1),
	JMD ("Jamaica Dollar","J$", -1),
	JPY ("Japan Yen","¥", -1),
	JEP ("Jersey Pound","£", -1),
	KZT ("Kazakhstan Tenge","лв", -1),
	KPW ("Korea (North) Won","₩", -1),
	KRW ("Korea (South, -1), Won","₩", -1),
	KGS ("Kyrgyzstan Som","лв", -1),
	LAK ("Laos Kip","₭", -1),
	LVL ("Latvia Lat","Ls", -1),
	LBP ("Lebanon Pound","£", -1),
	LRD ("Liberia Dollar","$", -1),
	LTL ("Lithuania Litas","Lt", -1),
	MKD ("Macedonia Denar","ден", -1),
	MYR ("Malaysia Ringgit","RM", -1),
	MUR ("Mauritius Rupee","₨", -1),
	MXN ("Mexico Peso","$", -1),
	MNT ("Mongolia Tughrik","₮", -1),
	MZN ("Mozambique Metical","MT", -1),
	NAD ("Namibia Dollar","$", -1),
	NPR ("Nepal Rupee","₨", -1),
	ANG ("Netherlands Antilles Guilder","ƒ", -1),
	NZD ("New Zealand Dollar","$", -1),
	NIO ("Nicaragua Cordoba","C$", -1),
	NGN ("Nigeria Naira","₦", -1),
	NOK ("Norway Krone","kr", -1),
	OMR ("Oman Rial","﷼", -1),
	PKR ("Pakistan Rupee","₨", -1),
	PAB ("Panama Balboa","B/.", -1),
	PYG ("Paraguay Guarani","Gs", -1),
	PEN ("Peru Nuevo Sol","S/.", -1),
	PHP ("Philippines Peso","₱", -1),
	PLN ("Poland Zloty","zł", -1),
	QAR ("Qatar Riyal","﷼", -1),
	RON ("Romania New Leu","lei", -1),
	RUB ("Russia Ruble","руб", -1),
	SHP ("Saint Helena Pound","£", -1),
	SAR ("Saudi Arabia Riyal","﷼", -1),
	RSD ("Serbia Dinar","Дин.", -1),
	SCR ("Seychelles Rupee","₨", -1),
	SGD ("Singapore Dollar","$", -1),
	SBD ("Solomon Islands Dollar","$", -1),
	SOS ("Somalia Shilling","S", -1),
	ZAR ("South Africa Rand","R", -1),
	LKR ("Sri Lanka Rupee","₨", -1),
	SEK ("Sweden Krona","kr", -1),
	CHF ("Switzerland Franc","CHF", -1),
	SRD ("Suriname Dollar","$", -1),
	SYP ("Syria Pound","£", -1),
	TWD ("Taiwan New Dollar","NT$", -1),
	THB ("Thailand Baht","฿", -1),
	TTD ("Trinidad and Tobago Dollar","TT$", -1),
	TRY ("Turkey Lira","TL", -1),
	TRL ("Turkey Lira","₤", -1),
	TVD ("Tuvalu Dollar","$", -1),
	UAH ("Ukraine Hryvna","₴", -1),
	GBP ("United Kingdom Pound","£", 2),
	USD ("United States Dollar","$", 2),
	UYU ("Uruguay Peso","$U", -1),
	UZS ("Uzbekistan Som","лв", -1),
	VEF ("Venezuela Bolivar","Bs", -1),
	VND ("Viet Nam Dong","₫", -1),
	YER ("Yemen Rial","﷼", -1),
	ZWD ("Zimbabwe Dollar","Z$", -1);
	
	private String fullname;
	private String symbol;
	private byte decimalPlaces;
	
	/**
	 * @param fullname
	 * @param symbol
	 * @param decimalPlaces
	 */
	Currency (String fullname, String symbol, int decimalPlaces) {
		this.fullname = fullname;
		this.symbol = symbol;
		this.decimalPlaces = (byte)decimalPlaces;
	}

	/**
	 * @return The full English name of this currency
	 */
	public String getFullname() {
		return fullname;
	}

	/**
	 * @return The written symbol for this currency, such as $ and € 
	 */
	public String getSymbol() {
		return symbol;
	}

	/**
	 * @return The number of decimal places this currency uses. Defaults to 2
	 */
	public byte getDecimalPlaces() {
		if(this.decimalPlaces != -1) {
			return this.decimalPlaces;
		}
		else {
			System.out.println(this.getFullname()+" has been requested, and its currency decimals aren't set yet!");
			return 2;
		}
	}
}
